home *** CD-ROM | disk | FTP | other *** search
-
- The Simplest Clock
- V1.56
- 9 Brezen 1993
-
-
- Frantisek Dufka
- Hrusovska 9
- 701 00, Ostrava 1
- Czech Republic
-
- INTERNET: dufkaf@risc.upol.cz
-
-
- Tento program je public domain. Je volne siritelny za podminky, ze nebude nic
- pozmeneno ani vypusteno. Pokud ho budete pouzivat, je to na vasi vlastni zod-
- povednost nebot ja, jako autor, se nemohu zarucit za jeho bezchybnost a nejsem
- zodpovedny za jakekoliv pripadne skody programem zpusobene.
-
- Pokud je mi znamo program funguje na OS 1.3/2.0/3.0
-
- CLI POUZITI:
-
- SimplestClock [[-[r][cislice]] RawDoSimplestClockFmtRetezec]
-
- POPIS:
-
- Ukolem programu je ukazovat neustale uzivateli nektere dulezite informace
- (aktualni cas a mnozstvi volne pameti) ve formatu, ktery si zvoli. Za timto
- ucelem si program otvira na liste libovolne vhodne Intuition-obrazovky male
- okynko o velikosti vypisovaneho textu, ktery je specifikovan parametrem
- RawDoSimplestClockFmtRetezec.
-
- Termin 'vhodna Intuition-obrazovka' znamena jakoukoliv systemovou obrazovku
- s listou a gadgety (tedy bez priznaku SCREENQUIET), ktera je dost siroka na to
- aby se na ni okno veslo.
-
- Nespecifikujete-li zadne parametry na prikazove radce je pouzit retezec
- "-5 Chip:%B7ld Fast:%C7ld Time: %A02d:%02d:%02d".
-
- Asi by bylo treba jednotlive parametry vysvetlit.
-
- -r vypina kontrolu u polozky "Always in the front"
- (viz. posledni odstavec)
- cislice priorita tasku hodin, cislice 0..9 znamenaji priority -4..+5
-
- Zakladem parametru RawDoSimplestClockFmtRetezec je formatovaci retezec pro
- funkci RawDoFmt, pricemz za ridici znak '%' muze byt uveden nektery specialni
- jednoznakovy prikaz pro program SimplestClock, ktery urcuje jake cislo se ma
- vypisovat (neboli - kde ho vzit).
-
- Prikazy, ktere jsou nyni implementovany :
-
- A (3 wordy) = systemovy cas (hodiny,minuty,sekundy)
- B (1 long) = mnozstvi volne tzv. Chip pameti v bajtech
- C (1 long) = mnozstvi volne tzv. Fast pameti
- D (1 long) = mnozstvi volne tzv. Public pameti (Chip+Fast)
- E (1 long) = velikost nejvetsiho souvisleho bloku (v Public pameti)
-
- F (1 long) = mnozstvi volne tzv. Chip pameti v kilobajtech
- G (1 long) = mnozstvi volne tzv. Fast pameti
- H (1 long) = mnozstvi volne tzv. Public pameti (Chip+Fast)
- I (1 long) = velikost nejvetsiho souvisleho bloku (v Public pameti)
-
- Jestlize nevite co je to 1 long, 3 wordy nebo funkce RawDoFmt ctete dalsi
- odstavec, jinak ho prosim preskocte (nic noveho pro vas).
-
- 1 long jednoduse receno znamena, ze ve formatovacim retezci musi byt nekde
- podretezec tvaru %7ld, coz pro formatovaci funkci znamena, ze na tomto miste
- bude vytisteno sedmiciferne decimalni cislo typu long (4 byty), 3 wordy
- znamena ze tam budou 3-krat za sebou podretezce %02d, coz znamena dvouciferne
- cislo typu word (2 byty) pricemz volna mista jsou doplneny nulami. Jako for-
- matovaci funkce je pouzito systemove funkce RawDoFmt z knihovny Exec. Tato
- funkce je zjednodusenou verzi funkce printf() znamou z jazyka C. Myslim, ze
- neni treba jeji cinnost vysvetlovat, pro nasi potrebu staci konkretni uvedene
- priklady.
-
- Tedy jestlize napr. mate pocitac s 2MB Chip RAM, zadnou Fast RAM a nechcete
- si nechat vypisovat cas, Staci program spustit v CLI treba takto :
-
- SimplestClock Ahoj Uzivateli!!! Zrovna ted mam pro tebe %B8ld bytu volne Chip pameti, ale bohuzel zadnou Fastku. Tvoje pritelkyne.
-
- A je to ! Mozna to nebyl zrovna nejlepsi priklad, protoze jestlize nemate
- zrovna nahozeny SUPERHIRES, tak se nic neukaze nebot tento retezec se urcite
- nevleze na HIRESovskou obrazovku.
- Nechcete-li vedet mnozstvi volne Chip pameti uplne do posledniho bajtiku a cas
- az do posledni vterinky staci napsat treba :
-
- SimplestClock %F4ldK %A02d:%02d
-
- Neni treba hodiny (hodiny=tento program) spoustet DOSovskym prikazem Run
- nebot spusti cast sama sebe jako novy proces a stary CLI-proces se okamzite
- ukonci (a uvolni z pameti), takze prompt se ukaze temer okamzite.
-
- Hodiny lze definitivne ukoncit menu polozkou 'Quit'. Jestli jste to zkusili,
- jiste jste si v bohatem menu vsimli jeste jedne polozky nazvane 'Always in
- the front'. Tato polozka umoznuje to hlavni, proc jsem tento program vlastne
- napsal, tedy moznost premistit se (hodiny) na jinou obrazovku. (Proste jsem
- chtel v AsmOne vedet kolik je hodin). Staci tuto polozku 'odfajfknout' a pak
- umistit zadanou obrazovku dopredu. Pokud obrazovka splnuje vyse uvedene
- predpoklady, hodiny se na ni premisti. Pak by bylo vhodne polozku zase vypnout
- (neni to treba, ale hodiny pak zerou o trosililinku mene strojoveho casu a
- krome toho vam neskoci tam kam nechcete).
-
- Je tu vsak jeden maly problem. Premistovani po obrazovkach neni psano uplne
- systemove, ve verzi 1.3 to ale ani jinak nejde, system to proste nepodporuje.
- Nelze nijak zjistit, zda obrazovku, kterou si otevrel jeden program, nepouziva
- jeste nejaky program jiny. Je pouze mozne (a OS 2.0 a vyssi to tak dela) pri
- zavirani obrazovky zjistit, zda na ni jsou nejaka otevrena okna a jestlize
- jsou, pak obrazovku proste nezavrit. A shodou okolnosti to lze ve verzi 1.3
- docela jednoduse opravit (zabere to asi 14 bajtu). Takze hodiny jsou napsane
- tak, ze pokazde kdyz se premistujou na jinou obrazovku, snazi se zavrit tu
- puvodni na ktere byly (krome Workbench Screen), coz se nepovede je-li na ni
- jeste nejake jine okno (tedy jiny program). A stejne tak, jestlize vyskocite z
- programu ktery si obrazovku otevrel a na ni jsou hodiny, obrazovka se nezavre
- dokud je nepremistite nekam jinam. Funguje to skvele az na jednu vyjimku.
- Tou vyjimkou jsou programy ktere si otevrou obrazovku a na ni si neotevrou
- zadne okno a kresli primo do obrazovky. Jestli na takovou obrazovku pustite
- hodiny a pak je premistite jinam obrazovka se zavre. A jestlize se nekdo snazi
- kreslit do zavrene obrazovky .............................. CRASH !!!, GURU.
-
- Nastesti je takovych programu malo (ja sam jsem jeste zadny takovy nevidel),
- protoze jestlize si nekdo otevre obrazovku v Intuition-stylu (lista&gadgety),
- vetsinou chce pozivat menu a vlastni gadgety coz bez okna nejde. Vetsinou
- to vsichni resi tak, ze si otevrou tzv. BACKDROP okno. Nelze ale vyloucit, ze
- takovy program existuje, proto jsou hodiny napsany tak, ze pri presunovani na
- obrazovku na ktere neni zadne okno se menu polozka 'Always in the front'
- automaticky vypne (tuto vlastnost lze vypnout volbou -r). Zapinat ji pred
- ukoncenim programu ktery si obrazovku otevrel vrele nedoporucuji.
-
- Doufam, ze vam program k necemu bude. Jakekoliv napady, navrhy, otazky nebo
- prispevky (chudy student (-: ) jsou vitany.
-
- Frantisek Dufka
-